<?php

class UsuarioAdmDAO{
	/**
	 * 
	 * @var UsuarioAdmDAO
	 */
	public static $instancia=null;
	/**
	 * 
	 * @var PDO
	 */
	private $conn;
	
	/**
	 * 
	 * @var PDOStatement
	 */
	private $stmt;
	
	protected function __construct(){
		$this->conn = ConexaoPDO::getInstancia()->getDb();
	}
	public static function getInstancia(){
		if(!isset(self::$instancia)){
			self::$instancia = new UsuarioAdmDAO();
		}
		return self::$instancia;
	}
	
	public function montarObj($dados){
		$usuarioAdm = new UsuarioAdm();
		if(isset($dados["id_usuarioAdm"]))
			$usuarioAdm->setIdUsuarioAdm($dados["id_usuario_adm"]);
		if(isset($dados["nome"]))
			$usuarioAdm->setNome($dados["nome"]);
		if(isset($dados["login"]))
			$usuarioAdm->setLogin($dados["login"]);
		
		return $usuarioAdm;
	}
	
	public function login(UsuarioAdm $usuarioAdm){
		$sql = "SELECT id_usuario_adm,nome,login FROM usuario_adm WHERE login=:login AND senha=:senha";
		try{
			$this->stmt = $this->conn->prepare($sql);
			$this->stmt->bindValue(":login",$usuarioAdm->getLogin());
			$this->stmt->bindValue(":senha",md5($usuarioAdm->getSenha()));
			$this->stmt->execute();
			$resp = $this->stmt->fetch();
			if($resp)
				return $this->montarObj($resp);
			return null;	
		}catch(PDOException $e){
			throw new UsuarioAdmException($e->getMessage());
		}
	}	
}